home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD70856242000.psc / Class Version / Module1.bas < prev    next >
Encoding:
BASIC Source File  |  2000-06-18  |  2.1 KB  |  52 lines

  1. Attribute VB_Name = "CDrag_Drop_Module"
  2. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4. 'This module is required by CDrag_Drop class.
  5. 'For an explanation of the following routines see the
  6. 'accompanied ReadMe file.
  7. '                               -Author     Muhammad Abubakar
  8. '                                       <joehacker@yahoo.com>
  9. '                                       http://go.to/abubakar
  10.  
  11. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12.  
  13. Option Explicit
  14.  
  15. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  16. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long) As Long
  17. Public Declare Sub DragFinish Lib "shell32.dll" (ByVal HDROP As Long)
  18. Public Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
  19. Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal Hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  20. Public Const GWL_WNDPROC = (-4)
  21. Public Const WM_DROPFILES = &H233
  22. Public PrevWndFunc As Long
  23.  
  24. Public obj As CDrag_Drop
  25.  
  26. Public Function WndProc(ByVal Hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  27.     
  28.     Dim n As Long, iLoop As Long, FileInfo As Long
  29.     Dim Buffer As String * 256, tmp As String
  30.     Dim length As Long
  31.     'buffer = Space(256)
  32.     If msg = WM_DROPFILES Then
  33.         obj.ClearFileNames
  34.         FileInfo = wParam
  35.         n = DragQueryFile(FileInfo, -1&, vbNullString, 0)
  36.         For iLoop = 0 To n - 1
  37.             length = DragQueryFile(FileInfo, iLoop, ByVal Buffer, 256)
  38.             Buffer = Trim(Buffer)
  39.             obj.AddInFileNames Buffer
  40.         Next
  41.         
  42.         obj.NowRaiseEvent
  43.         
  44.         DragFinish FileInfo 'wParam
  45.         WndProc = 0
  46.     Else
  47.         WndProc = CallWindowProc(PrevWndFunc, Hwnd, msg, wParam, lParam)
  48.     End If
  49.     
  50.     
  51. End Function
  52.